#ifndef MAILER_H
#define MAILER_H

#include "global.h"

namespace smsrouter {

class MailerPrivate;

class Mailer : public QObject {
  Q_OBJECT
public:
  Mailer();

  ~Mailer();

  State getState();

public slots:

  void start();

  void stop();

  void add(SrcSubmitSm *message);

  void add(DestSubmitSm *message);

  void add(DestDeliverSm *message);

  void add(SrcDeliverSm *message);

signals:

  void stateChanged(State state);

  void send(SrcSubmitSm *message);

  void send(DestSubmitSm *message);

  void send(SrcDeliverSm *message);

private:

  friend class MailerPrivate;

  MailerPrivate *p;
};

} // namespace smsrouter

#endif // MAILER_H
